package com.njtech.pet.service;

import com.njtech.pet.entity.Bill;
import com.njtech.pet.entity.Item;
import com.njtech.pet.entity.User;

import java.util.Date;
import java.util.List;

/**
 * Created by m1870 on 2020/3/19.
 */
public interface CreditService {


    /**
     * 获得用户积分
     * @param uid 用户id
     * @return 总积分
     */
    Integer getUserCredit(Integer uid);


    /**
     * 查看订单详情
     * @param user 需要查询的用户
     * @return 订单list
     */
    List<Bill> getUserCreditHistory(User user);


    /**
     * 退款时更改订单状态更新用户积分
     * @param bill 退款订单
     * @param user 用户
     * @return 用户积分
     */
    Integer updateUserCredit(Bill bill ,User user);


    /**
     * 添加积分
     * @param bill 购买订单
     * @param user 用户
     * @return  用户积分
     */
    Integer addCredit(Bill bill, User user);


//    /**
//     * 修改订单积分
//     * @param bill 需要修改的订单
//     * @param user 需要修改的用户
//     * @param editCredit 修改的积分积分值
//     * @return 订单
//     */
//    Bill updateBillCredit(Bill bill,User user,int editCredit);
//
//
//    /**
//     * 管理员修改商品类的积分
//     * @param item 需要修改的商品
//     * @return 修改后的商品
//     */
//    Item updateItemCredit(Item item ,int inputCredit);



    /**
     * 复制商品链接
     * @param user 用户
     * @param item 商品
     * @return 商品链接
     */
    String copyLinks(User user,Item item);

    /**
     * 管理员添加积分
     * @param user 用户
     * @param inputCredit 输入的积分
     * @return 用户积分
     */
    Integer addByAdmin(User user,int inputCredit);



    /**
     * 管理员删除积分
     * @param user 用户
     * @param deleteCredit 删除的积分值
     * @return  用户积分
     */
    Integer deleteByAdmin(User user,int deleteCredit);
}
